Digital computers of today are able to communicate with input/output devices having radically different data command execution times. A keyboard terminal which generates data at tens of characters per second, a high-speed line printer which prints data at hundreds of characters per second, and a disk unit which reads and writes data at hundreds of thousands or even more characters per second might all communicate with a single digital computer over a shared input/output channel bus. Moreover, because of the differences in the requirements of users of computers, central processing units of modern general-purpose computers can usually be incorporated in a wide variety of computing systems having different groups of input/output devices. The need for flexibility in accommodating various input/output devices of greatly differing characteristics, however, gives rise to serious difficulties in designing the input/output channels of computers.
One such area of difficulty concerns the monitoring of input/output devices by a central processing unit to check for data errors and equipment malfunctions. It is desirable for information concerning a breakdown of an input/output device to be communicated to the central processing unit of a computing system to facilitate notifying the operator of the system of the problem. Consequently, the central processing unit is often given the task of monitoring various performance indicators of input/output devices, such as data word parity and message protocols, in order to detect equipment malfunctions. A fundamental performance indicator is the time required for an input/output device to respond to a request by a central processing unit for the device to carry out an input/output operation. The failure of an input/output device to respond to such a request can indicate a serious equipment malfunction and in any event, ordinarily requires the operator's intervention in order to accomplish the requested input/output operation. Different input/output devices, however, have vastly different response times. For example, a keyboard operator at a keyboard terminal will ordinarily take much longer to respond to a request to enter some data than a disk unit will take in responding to a request to supply data. Thus a delay in responding of one second might indicate that a disk unit was malfunctioning, whereas delays of much longer than a second might be typical for a keyboard terminal. Because of the great variation in response times of different input/output devices, conventional computers have typically relied on software programs to monitor the response time of input/output devices, if such monitoring was carried out at all. There has been no completely satisfactory unified mechanism for monitoring the response times of the wide variety of input/output devices to which a central processing unit can be connected.